import mergeJSON from '@/utils/common/mergeJSON'
import _ from 'lodash'
const pieOption = function (obj = {}) {
  let _strMax = _.max(obj.series[0].data.map(item => item.name.length))
  // 默认值
  let _object = {
    'title': {
      'text': '',
      'x': 'center',
      'textStyle': {
        'fontSize': 18,
        'fontWeight': 'bolder',
        'fontFamily': 'Microsoft YaHei,微软雅黑'
      }
    },
    // 鼠标移入效果
    'tooltip': {
      'trigger': 'item',
      'formatter': '{a} <br/>{b} : {c} ({d}%)'
    },
    // 个方块显示
    'legend': {
      'x': '60%',
      'y': 'center',
      'orient': 'vertical',
      'align': 'left',
      // 文字后添加数量
      'formatter': val => {
        let _str = ''

        obj.series[0].data.forEach(item => {
          if (val === item.name) {
            _str = ` {a|${val}}  {b|${item.value}}`
          }
        })
        return _str
      },
      // 添加文字样式等
      'data': obj.series[0].data.map((item, index) => {
        return {
          'name': item.name,
          'icon': '',
          'textStyle': {
            'color': obj.color[index],
            'padding': [0, 0]
          }
        }
      }),
      'textStyle': {
        'rich': {
          'a': {
            'color': '#000',
            'fontSize': 16,
            'width': _strMax * 12
          },
          'b': {
            'fontSize': 20,
            'width': 60,
            'align': 'right'

          }
        }
      }
    },
    // 图形中间文字
    'graphic': Boolean(obj.graphic) && [
      {
        'type': 'text', // 通过不同top值可以设置上下显示
        'left': '29%',
        'top': '50%',
        'style': {
          'text': '',
          'textAlign': 'center',
          'fill': '#000', // 文字的颜色
          'fontSize': 25,
          'width': 5,
          'height': 20,
          'color': '#f2f2f2'
        }
      },
      {
        'type': 'text', // 通过不同top值可以设置上下显示
        'left': '18%',
        'top': '55%',
        'style': {
          'text': '',
          'textAlign': 'right',
          'fill': '#000', // 文字的颜色
          'fontSize': 18,

          'color': '#4d4f5c'
        }
      }
    ],
    // 工具栏
    'toolbox': {
      'show': false,
      'feature': {
        'mark': { 'show': true },
        'dataView': { 'show': true, 'readOnly': false },
        // magicType: {
        //   show: true,
        //   type: ['pie', 'funnel']
        // },
        'restore': { 'show': true },
        'saveAsImage': { 'show': true }
      }
    },
    'calculable': true,
    'series': obj.series.map(item => (
      {
        'name': item.name || '半径模式',
        'type': item.type || 'pie',
        'radius': item.radius || ['35%', '60%'],
        'center': item.center || ['30%', '50%'],
        'roseType': item.roseType || 'radius',
        'label': {
          'normal': {
            'show': false
          },
          'emphasis': {
            'show': false
          }
        },
        'lableLine': {
          'normal': {
            'show': false
          },
          'emphasis': {
            'show': true
          }
        }
      }
    ))
  }
  // console.log(obj)

  return mergeJSON(obj, _object)
}
/**
 * @description 如果字数不够时，自动填充到设置的字符数
 * @param {String} s 原文字
 * @param {Number} mL 设置的字符数
 * @param {String, Number} seq 需要追加的字符
 * @returns 返回格式后的文字
 */

// function leftPad (s, mL, seq) {
//   let _sArray = s.split('');

//   let _sLength = _sArray.length;

//   let _min = mL - _sLength;

//   for (let index = 0; index < _min; index++) {
//     _sArray.push(seq);
//   }
//   return _sArray.join('');
// }

export default pieOption
